﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using DTO_MechSys;

namespace DAL_MechSys
{
    public class DALMensagem: DALBase
    {
        public void Excluir(int mensagemID)
        {
            try
            {
                string storedProssidere = "sp_ExcluirMensagem";
                SqlParameter[] parameters =

                        {                    
                           new SqlParameter("@mensagemid", mensagemID)                                    
                        };
                ExecuteNonQuery(storedProssidere, parameters);

            }

            catch (SqlException)
            {
                throw;
            }
        }

        public void Inserir(DTOMensagem dtoMensagem)
        {
            try
            {
                string storedProssidere = "sp_InserirMensagem";
                SqlParameter[] parameters =
                
                { 
                   new SqlParameter("@titulo", dtoMensagem.Titulo),
                   new SqlParameter("@texto", dtoMensagem.Texto),
                   new SqlParameter("@remetente", dtoMensagem.Remetente),
                   new SqlParameter("@assunto", dtoMensagem.Assunto),
                   new SqlParameter("@clienteid", dtoMensagem.ClienteID)

                };
                ExecuteNonQuery(storedProssidere, parameters);

            }

            catch (SqlException)
            {
                throw;
            }
        }

        public List<DTOMensagem> BuscarMensagemsCadastrados()
        {
            List<DTOMensagem> lstMensagem = new List<DTOMensagem>();

            try
            {
                string storedProssidere = "sp_BuscarMensagem";
                using (SqlDataReader sqlDataReader = ExecuteReader(storedProssidere))
                {
                    while (sqlDataReader.Read())
                    {

                        DTOMensagem dtoMensagem = CriarMensagem(sqlDataReader);

                        lstMensagem.Add(dtoMensagem);

                    }
                }
            }
            catch (SqlException)
            {
                throw;
            }
            return lstMensagem;
        }

        private DTOMensagem CriarMensagem(SqlDataReader sqlDataReader)
        {
            try
            {
                DTOMensagem dtoMensagem = new DTOMensagem();

                if (!string.IsNullOrEmpty(sqlDataReader["MensagemID"].ToString()))
                {
                    dtoMensagem.MensagemID = (int)sqlDataReader["MensagemID"];
                }
                if (!string.IsNullOrEmpty(sqlDataReader["ClienteID"].ToString()))
                {
                    dtoMensagem.ClienteID = (int)sqlDataReader["ClienteID"];
                }
                if (!string.IsNullOrEmpty(sqlDataReader["Remetente"].ToString()))
                {
                    dtoMensagem.Remetente = (string)sqlDataReader["Remetente"];
                }

                if (!string.IsNullOrEmpty(sqlDataReader["Assunto"].ToString()))
                {
                    dtoMensagem.Assunto = (string)sqlDataReader["Assunto"];
                }

                if (!string.IsNullOrEmpty(sqlDataReader["Texto"].ToString()))
                {
                    dtoMensagem.Texto = (string)sqlDataReader["Texto"];
                }

                if (!string.IsNullOrEmpty(sqlDataReader["Titulo"].ToString()))
                {
                    dtoMensagem.Titulo = (string)(sqlDataReader["Titulo"].ToString());
                }

                if (!string.IsNullOrEmpty(sqlDataReader["Status"].ToString()))
                {
                    dtoMensagem.Status = bool.Parse(sqlDataReader["Status"].ToString());
                }

                return dtoMensagem;
            }
            catch (Exception)
            {
                throw;
            }
        }
    }
}

    

